/*
2.二分查找:
 解析：
    二分查找，也为折半查找。
    首先要找到一个中间值，通过与中间值比较，比中间值大的放右边，比中间值小的放在左边。
    再在两边中寻找中间值，持续以上操作，直到找到所在位置为止。

 注意：这个二分法查找没有考虑临界条件，也就是说使用条件受限，使用时必须满足一下条件，否则会报错
    1、传入的第一个参数必须是数组
    2、arr是升序的，元素是不重复的
 */
function dichotomySearch(arr, destEle) {
    let start = 0, end = arr.length - 1
    while (start <= end) {
        let m = Math.floor((start + end) / 2)
        if (arr[m] === destEle) {
            return m
        }
        if (destEle > arr[m]) {
            start = m + 1
        } else {
            end = m - 1
        }
    }
    return -1
}

console.log(dichotomySearch([-34, 1, 3, 4, 5, 8, 34, 35, 45, 65, 87], 87))
console.log(dichotomySearch([-34, 1, 3, 4, 5, 8, 34, 35, 45, 65, 87], 4))

// 10
// 3
